package com.Maykk.StuManagerT;

import java.util.ArrayList;

/**
 * @ClassName: StuController
 * @Description: TODO 控制层 —— 流程控制
 * @Author: MaykkStar@163.com
 */
public class StuController {
    StuModel sm = new StuModel();

    public void action(int choose) {
        switch (choose) {
            case 1: // 查询
                findAction(StuPage.serchPage());
                break;
            case 2: // 添加
                // 输入要添加的学员信息
                // 更新学员集合信息
                StuPage.showOutcome(sm.addStu(StuPage.inputStuInfo()));
                break;
            case 3: // 修改
                // 输入学员ID
                int stuID = StuPage.inputID();
                // 查找学员并输出，确认是否修改
                ArrayList<Student> editStuInfo = sm.findByID(stuID);
                StuPage.showList(editStuInfo);
                if (StuPage.AreYouOK()) {
                    Student inputStuInfo = StuPage.editStuInfo(editStuInfo);
                    sm.editStuInfo(editStuInfo, inputStuInfo);
                }
                // 修改信息
                break;
            case 4: // 删除
                // 输入学员ID
                int delStuID = StuPage.inputID();
                ArrayList<Student> delStu = sm.findByID(delStuID);
                if (delStu.isEmpty()) {
                    StuPage.showErr("未找到学员");
                } else{
                    StuPage.showList(delStu);
                    if (StuPage.AreYouOK()) {
                        sm.doDelStu(delStuID);
                    }
                }
                break;
            case 0: // 退出
                System.exit(0);
        }
    }

    private void findAction(int findBy) {
        switch (findBy) {
            case 1: // 全部
                StuPage.showList(sm.findAll());
                break;
            case 2: // ID
                StuPage.showList(sm.findByID(StuPage.inputID()));
                break;
            case 3: // 姓名
                StuPage.showList(sm.findByName(StuPage.inputName()));
                break;
            case 4: // 性别
                StuPage.showList(sm.findBySex(StuPage.inputSex()));
                break;
            case 5: // 年龄
                StuPage.showList(sm.findByAge(StuPage.inputAge()));
                break;
            case 6: // 成绩
                StuPage.showList(sm.findByScore(StuPage.inputScore()));
                break;
            case 0: // 返回主菜单
                break;
        }
    }

}
